package jsp;

import util.CookieUtil;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
 * Author:shixiaojun@itany.com
 * Date:2022/4/12 17:11
 * Version:1.0-SNAPSHOT
 * Description: 自动登录功能
 * 用户在访问时,不会直接访问登录页面
 * 始终访问当前Servlet的访问命令/showMain
 * 用户在访问时,服务器根据当前请求中的Cookie进行判断
 * 当Cookie中不存在username与password的时候
 *  则页面跳转到登录页面,用户需要进行登录
 * 如果Cookie中存在username与password的时候
 *  则需要对当前Cookie中的数据进行判断
 *  如果当前cookie中的username与password是正确的
 *      则页面直接跳转到主页,不需要登录
 *  如果当前cookie中的username与password是错误的
 *      则清除当前cookie中的username与password
 *      并且页面跳转到登录页面,需要用户进行登录
 */
@WebServlet("/showMain")
public class ShowMainServlet extends HttpServlet {

    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // 取出当前Cookie中的username与password
        String username = CookieUtil.findByName("username",request);
        String password = CookieUtil.findByName("password",request);
        // 当Cookie中的username的值为admin,password的值为123456,表示正确
        // 如果正确,直接进入主页,无需登录
        if("admin".equals(username) && "123456".equals(password)){
            // 直接访问主页
            request.getRequestDispatcher("/jsp/main.jsp").forward(request,response);
            return;
        }
        // 否则(包含username或者password为空以及不正确),需要重新登录
        // 因此,页面跳转到登录页面进行登录
        request.getRequestDispatcher("/jsp/login.jsp").forward(request,response);
    }

}
